`timescale 1ns / 1ps

module mult_array3 (
    input  wire         clk,
    input  wire         rst_n,
    input  wire [1535:0] data1,      // 32个48位有符号数
    input  wire [255:0]  data2,      // 32个8位有符号数
    output wire [1791:0] result      // 32个56位有符号数
);

    genvar gv_i;
    generate
        for (gv_i = 0; gv_i < 32; gv_i = gv_i + 1) begin
            mult_48_8 u_mult_48(
                .CLK(clk),
                .A(data1[gv_i*48 +: 48]),
                .B(data2[gv_i*8 +: 8]),
                .P(result[gv_i*56 +: 56])
            );
        end
    endgenerate

endmodule